Đèn báo (lập trình)

Trong khoa học máy tính, đèn báo là một biến được bảo vệ hoặc một kiểu dữ liệu trừu tượng tạo ra sự trừu tượng hoá đơn giản nhưng hữu dụng để kiểm soát truy cập của nhiều tiến trình đến một tài nguyên chung trong môi trường lập trình song song.Một cách nhìn về đèn báo là một bản ghi có bao nhiêu đơn vị của một tài nguyên có thể sử dụng, gắn với các tác vụ điều chỉnh bản ghi đó một cách an toàn (nghĩa là không tạo ra race condition) khi yêu cầu hoặc giải phóng các đơn vị và đợi đến khi một đơn vị rảnh rỗi nếu cần. Đèn báo là một công cụ hữu ích để chống race condition và khoá chết, tuy nhiên việc sử dụng nó không đảm bảo rằng chương trình không gặp phải các vấn đề trên. Đèn báo cho phép một số lượng tuỳ ý tài nguyên gọi là đèn báo đếm (counting semaphore) trong khi đèn báo bị giới hạn trong giá trị 0 và 1 được gọi là đèn báo nhị phân (binary semaphores).Khái niệm đèn báo được phát minh bởi nhà nghiên cứu người Hà Lan Edsger Dijkstra,[1] and the concept has found widespread use in a variety of operating systems.

Tài liệu tham khảo

WikiPedia: Đèn báo (lập trình) http://greenteapress.com/semaphores/ http://www.linuxgrill.com/anonymous/fire/netfilter... http://www.cs.utexas.edu/users/EWD/ewd00xx/EWD74.P... http://www.cs.utexas.edu/users/EWD/transcriptions/... http://www.cs.utexas.edu/users/EWD/transcriptions/... http://www.cs.utexas.edu/users/EWD/transcriptions/... http://www.oamk.fi/~joleppaj/personal/jleppaja_gra... http://www.opengroup.org/onlinepubs/009695399/base... https://docs.oracle.com/javase/10/docs/api/java/ut...